home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
hypertxt.arj
/
9537
/
SWFEJL.CD
< prev
next >
Wrap
Text File
|
1996-02-19
|
13KB
|
191 lines
@VA szoftverfejlesztés válsága és fejlôdése@N
A legtöbb program mindmáig néhány formális
programnyelv alkalmazásával, kézmûipari, intuitív
módszerekkel készül. Napjainkban azonban egyre több
fejlesztô kezdi munkáját a feladat elemzésével, majd
folytatja szisztematikus megoldásával.
A hagyományos programozási gyakorlat alig tud lépést
tartani a mind gyorsabb, mind olcsóbb és mind kisebb hardver
igényeivel. A hálózatba kapcsolás esetenként újabb
bizonytalansági tényezôket visz a rendszerbe. A nagy
hálózatokban ugyanis számos olyan hiba jelentkezik, amit az
egyedi berendezéseken nem lehetett észlelni. A komplexitás
növekedésével mind gyakrabban fordulnak elô zavarok. Ha a
rendszer mérete akkorára nô, hogy jól képzett szakember azt
nem tudja teljes egészében áttekinteni, a hagyományos
fejlesztési módszerek általában csôdöt mondanak.
Szakértôk szerint az eddig elkészült nagy rendszerek 55
százaléka a tervezettnél többe került, 68 százalék nem
készült el a tervezett határidôre, 88 százalékuk nem
teljesítette az elvártakat, ezért át kellett írni azokat. A
jelentés azonban nem szól a megbízhatóságról. Åltalános
vélemény szerint a nagy rendszerek viszonylag gyakran
omlanak össze valamely váratlan esemény vagy körülmény
miatt, jelentôs veszteségeket okozva.
Négy éve a Software Engineering Institute felállította a
képesség érettségi modelljét, a Capability Maturity Modelt,
CMM-et, amivel öt osztályba sorolhatók a programok. Az
elsôbe a kaotikus jellegû, az ötödik osztályba a teljesen
logikai felépítésû programok sorolandók. Ezt követôen
megkezdôdött a kiválasztott szoftverek minôsítése. Az
eredmény lehangoló: a jelenleg futó programok 75 százaléka
csak az elsô osztályba sorolható, mert nem ismeretesek
alkalmazásuk határai, nem tudni, mikor vétenek hibát és azok
milyen következményekkel járnak; 24 százalék üti meg a 2--3.
osztályba sorolás mértékét, és csak egy-két program
érdemelte ki az 5. osztályú minôsítést.
Egyre többet fordítanak mind a nagy, mind a polcról
levehetô szoftverek minôség-ellenôrzésére. A korlátozott
fejlesztési idô és költségkeret miatt a fejlesztôk mindkét
kategóriában gyakran vétenek. A hibák esetenként sohasem
kerülnek felszínre, a tömegesen alkalmazott szoftverekben
általában csak néhány esetben tûnnek ki -- és ez esetben a
polcról levehetô programok fejlesztôi azzal védekezhetnek,
hogy az adott esetben egyedi szoftvert kellett volna
alkalmazni.
Nem segít ezen a problémán a tesztelés sem. A Windows új
változatát húszezer önkéntes tesztelte különbözô
felhasználásokban. Ez igen hatásos -- jegyezte meg @Kifj.
@KSimonyi Károly,@N a Microsoft vezetô tervezôje --, de egyben
igen költséges is, különösen annak fényében, hogy az évi
92,8 milliárdot kitevô amerikai szoftverforgalomból a PC-s
alkalmazások alig 10 százalékkal részesülnek.
Kutatók most a hibák felfedezési és kiküszöbölési
módszereinek kifejlesztésén fáradoznak, mások a felfedezett
hibákat kívánják orvosolni. Elsô lépésként -- hangzik a
tanács -- lehetôleg szabványos elemekbôl kell megalkotni a
program vázát, prototípusát. Ez hozzásegíthet a megrendelôk
és fejlesztôk közötti félreértések tisztázásához, a feladat
konkrétabb megfogalmazásához. A prototípus megalkotása után
kerülhet sor a feladat részletes kimunkálására.
Mások, így a Mitsubishi Electronics kutatóintézetének
igazgatója, @KBelady László@N szerint a prototípus megalkotása
nem segít, mert az ördög mindig a részletekben van, a
szoftverhibák rendszerint modulillesztési zavarokra és
elhanyagolásokra vezethetôk vissza, így a programvázak nem
segítik elô a programok kimunkálását.
Tulajdonképpen csak matematikai elemzéssel lehetne elôre
meghatározni a programok viselkedését, feltárni a mélyebben
rejtôzô hibákat. Formális módszereket alkalmaztak például a
brit légiforgalmat ellenôrzô rendszer programjának
tesztelésére, amelyben valamely elem meghibásodása esetén a
redundáns elem veszi át annak funkcióját.
Automatikus programtesztelésre fejlesztette ki az
amerikai Nemzeti Szabványügyi és Technológiai Intézet
megbízása alapján az Incremental Systems cég a
""tisztaszoba" módszert. Ez a formális szoftverfejlesztést
igyekszik ötvözni a helyességi vizsgálatokkal és a
statisztikai ellenôrzéssel. A lapkagyártásnál -- ahonnan az
eljárás a nevét kapta -- már az elsô példányoknak meg kell
felelniük az elôírásoknak. A tisztaszoba módszernél a
szoftverfejlesztôk lépésrôl lépésre ellenôrzik munkájukat, a
lépések kimenetét statisztikailag vizsgálják, megállapítják,
hogy milyen gyakorisággal következhet be hiba, a
hibaanalízis eredményeit visszacsatolják, és ha a
programokat jól ellenôrzött részprogramokból állítják össze,
akkor gondosan ellenôrzik azok illesztéseit, végül
statisztikai módszerekkel értékelik az egész program
megbízhatóságát. E módszert alkalmazták az Ericssonnál az
elektronikus nagyközpontok szoftverének kifejlesztése során,
és ezzel sikerült az ezer kapcsolásonkénti eddigi átlagosan
huszonöt tévesztés számát egyre mérsékelni.
A hatvanas években számos cég dicsekedett azzal, hogy
meglelte a programozás ellenôrzésének legjobb módját. Egy
évtizeddel késôbb a CASE-tôl várták a megváltást, és magas
szintû programnyelvek, új ellenôrzési technológiák láttak
napvilágot, de ez ideig egyik sem bizonyult valóban
eredményesnek. A szoftverfejlôdés idôközben lemaradt a
hardverfejlesztés és - gyártás termelékenysége mögött. A
mind nagyobb sebességû és mind nagyobb tárolókapacitású
hardver nagy kihívást jelentett és jelent a
szoftverfejlesztôk számára. Ehhez hozzájárult az is, hogy
míg a hardvergyártás termelékenysége jól, addig a
szoftverfejlesztés termelékenysége alig mérhetô, nem is igen
mérik. Az általános mérnöki gyakorlatot számos kézikönyv
segíti, de nincs egyetlen általános programozási kézikönyv,
hiszen a feladat esetenként más és más, az eltérô
megoldásokba különbözô módon csúszhatnak be hibák.
A szoftverfejlesztés legnagyobb kihívása a szoftverek
hardverfüggôségének felszámolása, a bármely gépre, bármely
környezetre könnyen adaptálható programok vagy legalábbis
programelemek megalkotása. A futurológusok látomása szerint
elôbb-utóbb a világ valamennyi számítógépe egyetlen
hálózatba lesz kötve, és a felhasználók valamely központi
szoftvertárból egyedileg hívhatják le a számukra szükséges
programelemeket, amelyek automatikusan illeszkednek majd a
szabványosított felületekhez. A lehívott elemek árát a
rendszer automatikusan számlázza majd a felhasználóknak.
Lehet, hogy a szoftverfejlesztôk feladata csupán az
univerzálisan alkalmazható szoftverek megalkotása marad, a
gyakorlatban alkalmazott programok összeállítása a nem
programozó felhasználó tevékenységi körébe megy át. Továbbra
is a specialisták feladata marad azonban a nagy rendszerek
megalkotása.
@KReich György@N
@VMegdermedt repülôtér@N
Példa a bonyolultabb programok hibáira a denveri
repülôtér csomagszállító rendszerének esete. Az új, három
óriásgép egyidejû fogadására alkalmas denveri repülôtér
tízszer akkora, mint a londoni Heathrow. Csomagszállító
rendszere harmincnégy kilométernyi szállítószalagból és
négyezer elektronikus vezérlésû targoncából áll. A rendszert
kereken száz, hálózatba kötött számítógép, ötezer érzékelô,
négyszáz rádió adó-vevô és ötvenhat vonalkódolvasó vezérli,
irányítja. A 193 millió dollár költséggel felépült rendszer
programjait a BAE Automated Systems cég kilenc hónapig
fejlesztette, mégsem sikerült a repülôtér tervezett
megnyitási idejére elkészítenie, ezért a megnyitás elôbb
1993 decemberérôl 1994 márciusáig, majd júniusáig húzódott
el, napi (!) 1,1 millió dollár veszteséget okozva. Végül is
még sokat tévesztô szoftverrel nyitották meg a repülôteret.
Hasonló, ugyancsak a polgári repülésbôl származó eset a
Sabre- é. 1970-ben fejlesztették ki az amerikai légiforgalmi
társaságok az évi 2 milliárd utas helyfoglalását biztosító
Sabre rendszert, amely kielégítôen mûködött 1991-ig,
mindaddig, amíg össze nem kívánták vonni néhány nagy
szállodalánc helyfoglalási rendszerével. Ez 1992-ben a hibás
helyfoglalások miatt perek sokaságába torkollott, 165 millió
dollár veszteséget okozva a szállodaláncnak.
Ezekbôl az esetekbôl is okulva az Amerikai Szövetségi
Légügyi Hatóság 1990-ben már másként látott munkához.
Elavult légtér- ellenôrzési rendszerét korszerûbbel, az
Advanced Automation Systemmel (AAS) kívánta kiváltani. A
több mint 1 millió programsorra tervezett új rendszer
kifejlesztésével az IBM-et bízta meg, 500 dollár/programsor
költséget irányozva elô, azaz mintegy ötször többet, mint az
átlagos ipari programok költségei. Végül a program soronként
700-900 dollárba, összesen 1,4 milliárdba került, ám immár
hatodik éve számítógépek százait mûködteti megfelelôen,
folyamatos üzemben figyelve a légteret és jelezve az
esetleges váratlan eseményeket. Öt év azonban e téren nagy
idô. Mostanában vizsgálták felül a rendszert, és határoznak
arról, hogy azt a növekvô kívánalmaknak megfelelôen
továbbfejlesztik vagy újat készítenek.
Katonai kudarcról lévén szó, nem tudjuk pontosan,
mennyit veszített az amerikai Védelmi Minisztérium egy
tavaly felbocsátott katonai mûhold programhibáján. A múlt
tavasszal fellôtt Clementine mûhold fô feladata a
rakétaelhárító rendszerekben alkalmazandó szoftver
kipróbálása volt. A kísérlet kudarccal zárult: a mûhold
ahelyett, hogy tüzet nyitott volna a céltárgyra, 11 percen
át csak követte azt, végül pedig az üzemanyag kimerültével
nem találkozott a Geographos aszteroidával sem.
@VSzáguldás a síneken@N
Formális módszerekkel ellenôrizte és tökéletesítette a
francia GEC-Alsthome a 350 millió dollár ráfordítással
kifejlesztett, a francia vasutak hatezer villanymozdonyát
vezérlô, sebességét szabályozó szoftverét. Növelhetô volt a
vonatok sebessége, csökkenthetô a követési távolság, és
ezzel fokozható volt a meglévô sínpárok kihasználtsága. ìgy
feleslegessé vált új sínpárok dollármilliárdokat felemésztô
lefektetése. A szoftvert formálisan és a lehetôségek
mértékéig matematikailag is ellenôrizték, majd funkcionális
teszteket hajtottak végre.